const { application } = require('express')
const express = require('express')

const app = express();

//处理body中间件
app.use(express.urlencoded());
app.use(express.json());

//解决跨域问题
app.use((req,res,next)=>{
    const arr =['http://127.0.0.1:5500','http://127.0.0.1:5498','http://127.0.0.1:5499',]

    //includes 判断里面是否有这一项，有就返回true，没有就返回 false
    if(arr.includes(req.headers.origin)){
        res.set('Access-Control-Allow-Origin',req.headers.origin);
        res.set('Access-Control-Allow-Headers','token')
    }
  
    next();
})

// 创建axios实例的端口
app.get('/user',(req,res)=>{
    const {
        userId
    } = req.query;

    //如果出错就返回这里面的数据
    if(userId !=='001'){
        return res.send({
            code : 10001,
            msg : '查询失败',
            data : null
        })
    }

    res.send({
        code : 10000,
        msg : '查询成功',
        data : {
            name : '小明',
            hobby : '爱学习',
            age : 18 
        }
    })
})

//取消请求
app.get('/myAxios',(req,res)=>{
setTimeout(()=>{
    const token = req.headers.token;
    console.log(token);
    if(!token){
        return res.send({
            code : 10002,
            msg  : '没有权限',
            data : null
        })
    }

    const{
        userId
    } = req.query

    if(userId !=='001'){
        return res.send({
            code : 10001,
            msg : '查询失败',
            data : null
        })
    }

    res.send({
        code : 10000,
        msg : '查询成功',
        data : {
            name : '老李',
            hobby : '抽烟，喝酒，打麻将',
            age : 18 
        }
    })
},3000)

})


//JSONP端口
app.get('/jsonAll',(req,res)=>{

    const{
        callback
    }=req.query

    const data={
        name :'王哥',
        age : '38'
    }
    res.send(`${callback}(${JSON.stringify(data)})`)

})

//cors端口
app.get('/corsAll',(req,res)=>{
    const token = req.headers.token
    if(!token){
        return res.send({
            code : 10002,
            msg : '没有权限',
            data:null
        })
    }
    const {
        userId
    } = req.query;

    //如果出错就返回这里面的数据
    if(userId !=='001'){
        return res.send({
            code : 10001,
            msg : '查询失败',
            data : null
        })
    }

    res.send({
        code : 10000,
        msg : '查询成功',
        data : {
            name : '王哥',
            hobby : '唱歌',
            age : 18 
        }
    })
})

app.listen(4000,()=>{
    console.log('服务器启动成功');
})